package com.ssy.lingxi.order.model.vo.basic.request;

import com.ssy.lingxi.order.handler.annotation.DateStringFormatAnnotation;
import com.ssy.lingxi.order.handler.annotation.DateTimeFormatAnnotation;
import com.ssy.lingxi.order.model.vo.common.request.LogisticsAddressVO;
import lombok.Getter;
import lombok.Setter;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import java.io.Serializable;

/**
 * @author wyx
 * @version 2.0.0
 * @date 2021-10-13
 */
@Setter
@Getter
public class DeliveryOrderUpdateVO implements Serializable {

    /**
     * 送货单id
     */
    @NotNull(message = "送货单id不能为空")
    private Long id;

    /**
     * 摘要
     */
    @NotBlank(message = "摘要不能为空！")
    @Size(max = 100, message = "摘要最长100个字符！")
    private String digest;

    /**
     * 送货日期 yyyy-MM-dd
     */
    @NotBlank(message = "送货日期不能为空！")
    @DateStringFormatAnnotation(message = "送货日期格式错误！")
    private String deliveryTime;

    /**
     * 送货开始时间 （HH:mm）
     */
    private String deliveryStartTime;

    /**
     * 送货结束时间 （HH:mm）
     */
    private String deliveryEndTime;

    /**
     * 备注
     */
    private String remark;

    /**
     * 配送方式: 1-物流, 2-自提
     */
    @NotNull(message = "配送方式不能为空！")
    private Integer deliveryType;


    /**
     * 发货时间 yyyy-MM-dd HH:mm:ss
     */
    @DateTimeFormatAnnotation(message = "发货时间格式错误！")
    private String sendTime;

    /**
     * 发货地址
     */
    private LogisticsAddressVO deliveryVO;

    /**
     * 发货人
     */
    private LogisticsAddressVO executorVO;

    /**
     * 物流公司id
     */
    private Long logisticsCompanyId;
    /**
     * 物流单号
     */
    private String logisticsNo;
    /**
     * 物流公司
     */
    private String logisticsCompany;
}
